//自动缩放分辨率
var height = device.height; //获取屏幕高
var width = device.width;
//var whichOne = 0;
setScreenMetrics(width, height);

//自动把音量调为0
if (confirm('是否需要自动调整媒体音量为0', '以免直播任务发出声音。需要修改系统设置权限。')) {
    try {
        device.setMusicVolume(0)
        toast('成功设置媒体音量为0')
    } catch (err) {
        alert('首先需要开启权限，请开启后再次运行脚本')
        exit()
    }
} else {
    toast('不修改媒体音量')
}

//显示控制台
console.show();
sleep(400);
console.setPosition(-40, 480);
console.setSize(500, 530);
log("start");
toast('start');
//设置监听器，按音量-停止脚本
function registerKey() {
    events.observeKey();
    events.onKeyDown('volume_down', function(event) {
        console.log('已手动关闭脚本');
        console.log('即将退出并关闭控制台');
        toast('退出脚本');
        sleep(3000);
        console.hide();
        //device.cancelKeepingAwake();  //关闭屏幕常亮
        back();
        sleep(200);
        back();
        sleep(200);
        back();
        sleep(200);
        home();
        exit();
    });
}
threads.start(registerKey); //开启监听
log("按音量-，提前结束脚本");
toast('按音量-，提前结束脚本');
sleep(1500);

log("请打开无障碍权限");
toast('请打开无障碍权限');
auto.waitFor();

sleep(700);
home();
sleep(1000);

log("权限已打开");
toast('权限已打开');

app.launchApp("淘宝");
log("正在进入淘宝首页");
toast('正在进入淘宝首页');
// if(desc("我的淘宝").exists()){
//     click("淘宝");
// }
log("若长时间未进入淘宝，请手动进入");
desc("我的淘宝").waitFor();


/**********函数区****************************/
function 小羊界面() {
    sleep(1000)
    if (desc("充值中心").exists()) {
        desc("充值中心").click();
        log("小羊界面，请等候！");
        text("薅羊毛 继续赚").waitFor();
        sleep(2000);
        text("薅羊毛 继续赚").click();
    }
    // else {
    //     desc("我的淘宝").click();
    //     sleep(2500);
    //     var x=desc("芭芭农场").findOne().bounds().centerX();
    //     var y=desc("芭芭农场").findOne().bounds().centerY();
    //     click(x,y);
    // }
    log("已进小羊界面，请等候！");
    toast('请稍等');
    text("领饲料").waitFor();
    sleep(1000);
    log("已进小羊界面，请等候2");
    // text("O1CN01jM0KFm1icoq6dr8Dg_!!6000000004434-2-tps-198-152.png_").waitFor();
    sleep(3000);
    if (text("立即领取").exists()) {
        text("立即领取").click();
    } else if (text("立即前往").exists()) {
        text("O1CN01H0i1Xa1HZA2IIDwsI_!!6000000000771-2-tps-72-72.png_").click()
    }
    while (!(text("做任务赢奖励").exists())) {
        sleep(1500);
        var x = text("领饲料").findOne().bounds().centerX();
        var y = text("领饲料").findOne().bounds().centerY();
        log("获取x，y");
        click(x, y - 50);
        log("打开任务栏");
        sleep(2000);
        // if (text("做任务赢奖励").exists()) {
        //     sleep(1000);
        //     click("关闭");
        //     log("重新进入任务栏");
        //     sleep(1000);
        // }
    }
    sleep(2000);
    log("是否有奖励" + textContains("领取奖").exists());
    var a = [];
    var i = 0;
    i = textContains("领取奖").find().size();
    //找出所有去逛逛的任务，放到a
    a = textContains("领取奖").find();
    log(i);
    while (i > 0) {
        log("领奖励");
        sleep(1000);

        a[--i].click();
        log("领奖励2");
    }
    log("领完奖励");
    sleep(1000);
    if (text("惊喜宝箱").exists()) {
        text("O1CN01H0i1Xa1HZA2IIDwsI_!!6000000000771-2-tps-72-72.png_").click();
    }

    // var t=0;
    // while(!(text("做任务赢奖励").exists())){
    //     sleep(5000);
    // click(975,1435);
    // t++;
    //  if(t>=5){
    //     log("网络出错，退出");
    //     exit();
    //  }
    // }
}

function 滑动() {
    log("滑动");
    var f = 1;
    var t_ime = 13;
    while (f) {
        //防止检测不到完成控件
        if (!(t_ime)) {
            f = 0;
        }
        t_ime--;
        log(t_ime);
        scrollForward();
        sleep(1000);
        if (textContains("任务已").exists() || desc("任务完成").exists() || desc("任务已完成").exists()) {
            log("退出滑动");
            toast('退出滑动');
            sleep(1000);
            f = 0;
        } else if (textContains("浏览完成").exists() || text("任务完成").exists()) {
            log("退出滑动");
            toast('退出滑动');
            sleep(1000);
            f = 0;
        } else if (!(textContains("点击或滑动").exists()) && textContains("若发生退款").exists()) {
            log("退出滑动");
            toast('退出滑动');
            sleep(1000);
            f = 0;
        }
        scrollBackward();
        sleep(500);
    }
    log("退出滑动");
    back();
    sleep(2000);
    if (text("领取奖励").exists()) {
        text("领取奖励").click();
    }
    sleep(1000);
}

function 不滑动() {
    log("不滑动");
    var f = 1;
    t_ime = 17;
    while (f) {
        //防止检测不到完成控件
        if (!(t_ime)) {
            f = 0;
        }
        t_ime--;
        sleep(1000);
        if (textContains("任务已").exists() || desc("任务完成").exists()) {
            log("退出滑动");
            toast('退出滑动');
            sleep(1000);
            f = 0;
        } else if (textContains("浏览完成").exists() || text("任务完成").exists()) {
            log("退出滑动");
            toast('退出滑动');
            sleep(1000);
            f = 0;
        } else if (!(textContains("点击或滑动").exists()) && textContains("若发生退款").exists()) {
            log("退出滑动");
            toast('退出滑动');
            sleep(1000);
            f = 0;
        }
    }
    log("退出");
    back();
    sleep(2000);
    if (text("领取奖励").exists()) {
        text("领取奖励").click();
    }
    sleep(1000);
}

function 去逛逛() {
    // log("去逛逛1");
    var a = [];
    var i = 0;
    i = text("去逛逛").find().size();
    //找出所有去逛逛的任务，放到a
    a = text("去逛逛").find();
    log("去逛逛" + i);
    while (i) {
        i--;
        scrollForward();
        //保证点击任务时是在任务界面
        log("是否任务界面");
        while (!(text("做任务赢奖励").exists())) {
            log("非任务界面");
            sleep(1000);
            if (text("薅羊毛 继续赚").exists()) {
                text("薅羊毛 继续赚").click();
                log("重新进小羊界面，请等候！");
                toast('请稍等');
                text("领饲料").waitFor();
                sleep(1000);
                // text("O1CN01jM0KFm1icoq6dr8Dg_!!6000000004434-2-tps-198-152.png_").waitFor();
                while (!(text("做任务赢奖励").exists())) {
                    sleep(1500);
                    var x = text("领饲料").findOne().bounds().centerX();
                    var y = text("领饲料").findOne().bounds().centerY();
                    log("获取x，y2");
                    click(x, y - 50);
                    log("打开任务栏");
                    sleep(2000);
                    // if (text("做任务赢奖励").exists() && !(text("去充值").exists())) {
                    //     sleep(1000);
                    //     click("关闭");
                    //     log("重新进入任务栏");
                    //     sleep(1000);
                    // }
                }
            } else {
                click(60, 140);
                back();
                back();
                log("返回");
                sleep(2000);
                if (textContains("每日提醒").exists()) {
                    log("提醒弹窗");
                    var x = text("每日提醒我领水滴").findOne().bounds().centerX();
                    var y = text("每日提醒我领水滴").findOne().bounds().centerY();
                    click(x - 240, y - 120);
                }
            }
            scrollBackward();
            sleep(500);
        }

        // while (text("做任务赢奖励").exists() && !(text("去充值").exists())) {
        //     sleep(1000);
        //     click("关闭");
        //     log("重新进入任务栏");
        //     sleep(1000);
        while (!text("做任务赢奖励").exists()) {
            scrollBackward();
            sleep(500);
            scrollBackward();
            sleep(500);
            scrollBackward();
            sleep(500);
            var x = text("领饲料").findOne().bounds().centerX();
            var y = text("领饲料").findOne().bounds().centerY();
            click(x, y - 50);
            log("打开任务栏");
            sleep(2000);
        }
        // }

        // var a = [];
        // var i = 0;
        // i = text("去逛逛").find().size();
        // //找出所有去逛逛的任务，放到a
        // a = text("去逛逛").find();
        log(i);
        a[i].click();

        sleep(2000);
        log("去逛逛，判断是否需要滑动");
        if (text("领取奖励").exists()) {
            text("领取奖励").click();
        }
        if (textContains("领考拉海购").exists() || textContains("优酷").exists() || textContains("招财猪").exists() || textContains("屏蔽隐私商品").exists() || textContains("下载支付宝").exists() || text("O1CN011Tq8fw1ssyxbNHWdg_!!6000000005823-2-tps-266-66.png_").exists()) {
            back();
            sleep(1000);
            log("不需要滑动");
        } else if (desc("本可爱有话说").exists() || desc("跟主播聊什么？").exists() || text("跟主播聊什么？").exists() || id("com.taobao.taobao:id/taolive_chat_btn_text").exists() || id("com.taobao.taobao:id/tbvideo_search").exists() || id("com.taobao.taobao:id/taolive_room_top_more_btn").exists()) {
            不滑动();
            if (text("领取奖励").exists()) {
                text("领取奖励").click();
            }
        } else if (text("点击").exists()) {
            var i = 10;
            while (i--) {
                sleep(1000);
                click(600, 1300);
                sleep(500);
                while (!text("点击").exists()) {
                    log("返回点击");
                    back();
                    sleep(1000);
                    if (text("任务已完成").exists()) break;
                }
                scrollForward();
                sleep(500);
                scrollForward();
                if (text("任务已完成").exists()) break; //已完成，提前结束
            }

        } else {
            滑动();
            if (text("领取奖励").exists()) {
                text("领取奖励").click();
            }
        }
    }
}

function 去完成() {
    log("去完成");
    var a = [];
    var i = 0;
    i = text("去完成").untilFind().size();
    //找出所有去完成的任务，放到a
    a = text("去完成").untilFind();
    scrollForward();
    // i=i+1;
    while (i) {
        i--;
        scrollForward();
        //保证点击任务时是在任务界面
        log("是否任务界面");
        while (!(text("做任务赢奖励").exists())) {
            click(60, 140)
            sleep(1000);
            back();
            log("返回");
            sleep(2000);
            if (textContains("每日提醒").exists()) {
                log("提醒弹窗");
                var x = text("每日提醒我领水滴").findOne().bounds().centerX();
                var y = text("每日提醒我领水滴").findOne().bounds().centerY();
                click(x - 240, y - 120);
            }
            if (text("做任务赢奖励").exists() && !(text("去充值").exists())) {
                sleep(1000);
                click("关闭");
                log("重新进入任务栏");
                sleep(1000);
            }
        }

        a[i].click();
        log(i);
        sleep(2000);
        if (textContains("领考拉海购").exists() || textContains("招财猪").exists() || desc("分享给好友").exists() || (text("充值中心").exists() && !text("浏览15秒得饲料奖励").exists())) {
            back();
            log("非任务？")
            sleep(1000);
        } else if (text("点击").exists()) {
            var i = 10;
            while (i--) {
                sleep(1000);
                click(600, 1300);
                sleep(500);
                while (!text("点击").exists()) {
                    log("返回点击");
                    back();
                    sleep(1000);
                    if (text("任务已完成").exists()) break;
                }
                scrollForward();
                sleep(500);
                scrollForward();
                if (text("任务已完成").exists()) break; //已完成，提前结束
            }

        } else if (text("YAxi8BN57QXHfQCMYwew?wh_ttid=phone&disableNav=YES").exists()) {
            log("首页进入");
            click("YAxi8BN57QXHfQCMYwew?wh_ttid=phone&disableNav=YES");
            sleep(2000);
            click("hymB?wh_biz=tm&disableNav=YES&subSource=yindaorenwu&fromLeadTask=YES");
            sleep(3000);
            if (text("领取礼物").exists()) {
                click("领取礼物");
                sleep(2000);
            }
            while (!(text("做任务赢奖励").exists())) {
                sleep(1500);
                var x = text("领饲料").findOne().bounds().centerX();
                var y = text("领饲料").findOne().bounds().centerY();
                click(x, y - 50);
                log("打开任务栏");
                sleep(2000);
                if (text("做任务赢奖励").exists() && !(text("去充值").exists())) {
                    sleep(1000);
                    click("关闭");
                    log("重新进入任务栏");
                    sleep(1000);
                }
            }
            if (text("立即领取").exists()) {
                text("立即领取").click();
            }

        } else if (text("ꁊ").exists() || desc("立即购买").exists() || desc("购物车").exists() || textContains("优酷").exists() || textContains("购好货").exists()) {
            back();
            log("不需要滑动");
            sleep(1000);
        } else if (desc("本可爱有话说").exists() || desc("跟主播聊什么？").exists() || text("跟主播聊什么？").exists() || id("com.taobao.taobao:id/taolive_chat_btn_text").exists() || id("com.taobao.taobao:id/tbvideo_search").exists() || id("com.taobao.taobao:id/taolive_room_top_more_btn").exists()) {
            不滑动();
            if (text("领取奖励").exists()) {
                text("领取奖励").click();
            }
        } else {
            滑动();
            sleep(1000);
            if (text("薅羊毛 继续赚").exists()) {
                sleep(1000);
                text("薅羊毛 继续赚").click();
                text("薅羊毛 赚话费").waitFor();
                sleep(3000);
                log("等待再");
                text("领饲料").waitFor();
                sleep(2000);
                var x = text("领饲料").findOne().bounds().centerX();
                var y = text("领饲料").findOne().bounds().centerY();
                click(x, y - 50);
                log("等待再次打开任务栏");
            }
            if (text("领取奖励").exists()) {
                text("领取奖励").click();
            }
        }
        scrollBackward();
        sleep(500);
    }
}

function 收取() {
    //回到顶部
    log("准备回顶部");
    log(textEndsWith("g").exists());

    log("回顶部");
    var t1 = 5;
    while (t1--) {
        scrollBackward();
        sleep(500);
    }
    sleep(1000);

    while (!(textContains("加好友").exists())) {
        log("进入收取");

        // if (text("去收取").exists()) {
        //     text("去收取").click();
        //     log("收取");
        // }

        sleep(3000);
        if (!(text("去收取").exists())) {
            log("进入收取2");
            var x = text("收饲料").findOne().bounds().centerX();
            var y = text("收饲料").findOne().bounds().centerY();
            click(x + 50, y - 50);
            sleep(1000);
            log("重新进入收取");
        }
    }
    if (text("去收取").exists()) {
        text("去收取").click();
        log("找到去收取");
        textEndsWith("收取了你").waitFor();
        sleep(1000);
    }
    while (textEndsWith("收取了你").exists()) {
        sleep(1000);
        if (text("可收取").exists()) {
            log("有可收取");
            sleep(1000);
            text("可收取").click();
            sleep(1000);
        } else
            log("无可收取");

        back();
        log("收取完成，返回");
        sleep(2000);
    }
    log("等待回到收取饲料");
    textContains("加好友").waitFor();
    log("全部收取完成");
    // text("TB1V.x11oz1gK0jSZLeXXb9kVXa-73-77").click();
    text("O1CN01oyiUmt29J7UwEBzco_!!6000000008046-2-tps-62-62").click(); //关闭按钮
    log("关闭");
    sleep(2000);
}

function 扭蛋() {
    log("检查是否有扭蛋")
    var x = text("幸运扭蛋").findOne().bounds().centerX();
    var y = text("幸运扭蛋").findOne().bounds().centerY();
    click(x, y - 100);
    sleep(2000);
    // text("幸运扭蛋").click();
    // if (id("capsuleNum").exists() && !(id("capsuleNum").text("0").exists())) {
    if (textStartsWith("x").exists()) {
        log("有扭蛋");
        var x = textStartsWith("x").findOne().bounds().centerX();
        var y = textStartsWith("x").findOne().bounds().centerY();
        click(x - 50, y + 50);
        textEndsWith("扭蛋1次").waitFor();
        sleep(1000);
        while (!(text("x0").exists())) {
            sleep(1000);
            log("扭蛋");
            // id("playLottie").click();
            click(x - 50, y + 50);
            sleep(1000);
            if (text("开心收下").exists()) {
                text("开心收下").click();
            } else if (text("立即使用").exists()) {
                log("立即使用")
                var x = text("立即使用").findOne().bounds().centerX();
                var y = text("立即使用").findOne().bounds().centerY();
                click(x, y + (1854 - 1566));
            }

        }
        log("无次数，退出");
        back();
        sleep(1000);
    }
}
/*********************************** */

小羊界面();

function 执行1() {
    sleep(2000);
    if (text("领取").exists()) {
        text("领取").click();
        sleep(1000);
    }

    if (text("去练功").exists()) {
        log("练功");
        text("去练功").click();
        // text("练功升级").waitFor();
        sleep(5000);
        textContains("升级").click();
        sleep(1000);
        if (text("做任务赢奖励").exists()) {
            click("去签到")
            sleep(1000);
            click(200, 1000);
            sleep(1000);
        }
        textContains("升级").click();
        back();
        sleep(1000);
    }

    if (text("去训练").exists()) {
        log("训练");
        text("去训练").click();
        sleep(1000);
        click(500, 1750);
        text("活力中心").waitFor();
        log("等待活力");
        sleep(1000);
        text("训练").click();
        sleep(1500);
        if (text("做任务赢奖励").exists()) {
            log("无体力");
            if (text("去打卡").exists()) {
                log("打卡");
                click("去打卡");
            }
            sleep(1000);
            click("关闭");
            sleep(1000);
            text("训练").click();
        }
        sleep(1000);
        back();
        sleep(1000);
        sleep(1500);
        if (text("领取奖励").exists()) {
            text("领取奖励").click();
        }
        sleep(1000);
    }

    去完成();
    去逛逛();

    if (text("关闭").exists()) {
        text("关闭").click();
        sleep(1000);
    }

    收取();

    扭蛋();

    //领取小气泡
    if (id("feedBubble").exists()) {
        id("feedBubble").click();
        sleep(1000);
    }
    //直到不够饲料
    while (!(text("做任务赢奖励").exists())) {
        //textEndsWith("g").click();
        click(850, 1600);
        log("投喂中。。。");
        sleep(2000);
        if (text("可薅充值金").exists()) {
            var x = text("可薅充值金").findOne().bounds().centerX();
            var y = text("可薅充值金").findOne().bounds().centerY();
            click(x, y - 260);
            sleep(3000);
            if (text("继续喂羊，升级薅更多").exists()) {
                text("继续喂羊，升级薅更多").click();
                sleep(1000);
                if (text("关闭").exists()) {
                    text("关闭").click();
                    sleep(1000);
                }
            }
        }
        if (text("继续喂羊，升级薅更多").exists()) {
            text("继续喂羊，升级薅更多").click();
            sleep(1000);
            if (text("关闭").exists()) {
                text("关闭").click();
                sleep(1000);
            }
        }
    }
    log("饲料不足")

    sleep(1500);
    if (text("领取奖励").exists()) {
        text("领取奖励").click();
    }
    sleep(1000);
}

执行1();
for (var i = 1; i <= 3; i++) {
    log("第" + i + "检查是否有遗漏");
    执行1();
    if (text("领取奖励").exists()) {
        text("领取奖励").click();
    }
}

//退出到桌面
log("退出到桌面，再见！");
toast("结束，退出");
sleep(2000);
back();
sleep(1000);
back();
sleep(1000);
back();
sleep(1000);
home();
log("stop");
console.hide();
exit();